import wx
import wx.grid



# 自定义窗口类
class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(800, 600))
        # 创建一个面板
        panel = wx.Panel(self)
        # 创建一个横向的盒子布局管理器
        hbox = wx.BoxSizer(wx.HORIZONTAL)
        # 给面板设置布局管理器
        panel.SetSizer(hbox)


        # 创建一个表格
        grid = wx.grid.Grid(panel, -1)
        grid.CreateGrid(5, 5) # 创建一个5行5列的表格

        # 设置grid的列宽
        grid.SetColSize(0, 100)
        grid.SetColSize(1, 100)
        grid.SetColSize(2, 100)
        grid.SetColSize(3, 100)
        grid.SetColSize(4, 100)

        # 设置grid的行高
        grid.SetRowSize(0, 30)
        grid.SetRowSize(1, 30)
        grid.SetRowSize(2, 30)
        grid.SetRowSize(3, 30)
        grid.SetRowSize(4, 30)

        # 设置grid的列标签
        grid.SetColLabelValue(0, "姓名")
        grid.SetColLabelValue(1, "年龄")
        grid.SetColLabelValue(2, "性别")
        grid.SetColLabelValue(3, "电话")
        grid.SetColLabelValue(4, "地址")

        # 将表格添加到布局管理器中
        hbox.Add(grid, 0,  wx.ALL | wx.LEFT, 10)

        # 设置数据居中
        for i in range(5):
            for j in range(5):
                grid.SetCellAlignment(i, j, wx.ALIGN_CENTER, wx.ALIGN_CENTER)

        # 给表格添加数据
        for i in range(5):
            grid.SetCellValue(i, 0, "张三")
            grid.SetCellValue(i, 1, "20")
            grid.SetCellValue(i, 2, "男")
            grid.SetCellValue(i, 3, "13560296641")
            grid.SetCellValue(i, 4, "佛山")








if __name__ == "__main__":
    # 创建一个应用程序
    app = wx.App()
    # 创建一个窗口
    frame = MyFrame(None, title="Hello, wxPython!")
    # 显示窗口
    frame.Show()
    # 运行应用程序
    app.MainLoop()
